# 列表的自动扩容机制
# over-allocating机制: 每次扩容时,列表会额外多分配一些内存空间,保证了其后续操作的高效性
if __name__ == '__main__':
    l = []
    print(l.__sizeof__())  # 空列表的存储空间为40字节

    l.append(1)
    print(l.__sizeof__())  # 加入了元素1之后,存储空间为80,列表为其分配了可以存储4个元素的空间 (72 - 40)/8 = 4

    l.append(2)
    print(l.__sizeof__())  # 72

    l.append(3)
    print(l.__sizeof__())  # 72

    l.append(4)
    print(l.__sizeof__())  # 72

    l.append(5)
    print(l.__sizeof__())  # 自动扩容:104
